library verilog;
use verilog.vl_types.all;
entity pmi_ram_dp_true_be is
    generic(
        pmi_addr_depth_a: integer := 512;
        pmi_addr_width_a: integer := 9;
        pmi_data_width_a: integer := 18;
        pmi_addr_depth_b: integer := 512;
        pmi_addr_width_b: integer := 9;
        pmi_data_width_b: integer := 18;
        pmi_regmode_a   : string  := "reg";
        pmi_regmode_b   : string  := "reg";
        pmi_gsr         : string  := "disable";
        pmi_resetmode   : string  := "sync";
        pmi_optimization: string  := "speed";
        pmi_init_file   : string  := "none";
        pmi_init_file_format: string  := "binary";
        pmi_write_mode_a: string  := "normal";
        pmi_write_mode_b: string  := "normal";
        pmi_byte_size   : integer := 9;
        pmi_family      : string  := "ECP2";
        module_type     : string  := "pmi_ram_dp_true_be"
    );
    port(
        DataInA         : in     vl_logic_vector;
        DataInB         : in     vl_logic_vector;
        AddressA        : in     vl_logic_vector;
        AddressB        : in     vl_logic_vector;
        ClockA          : in     vl_logic;
        ClockB          : in     vl_logic;
        ClockEnA        : in     vl_logic;
        ClockEnB        : in     vl_logic;
        WrA             : in     vl_logic;
        WrB             : in     vl_logic;
        ResetA          : in     vl_logic;
        ResetB          : in     vl_logic;
        ByteEnA         : in     vl_logic_vector;
        ByteEnB         : in     vl_logic_vector;
        QA              : out    vl_logic_vector;
        QB              : out    vl_logic_vector
    );
    attribute mti_svvh_generic_type : integer;
    attribute mti_svvh_generic_type of pmi_addr_depth_a : constant is 1;
    attribute mti_svvh_generic_type of pmi_addr_width_a : constant is 1;
    attribute mti_svvh_generic_type of pmi_data_width_a : constant is 1;
    attribute mti_svvh_generic_type of pmi_addr_depth_b : constant is 1;
    attribute mti_svvh_generic_type of pmi_addr_width_b : constant is 1;
    attribute mti_svvh_generic_type of pmi_data_width_b : constant is 1;
    attribute mti_svvh_generic_type of pmi_regmode_a : constant is 1;
    attribute mti_svvh_generic_type of pmi_regmode_b : constant is 1;
    attribute mti_svvh_generic_type of pmi_gsr : constant is 1;
    attribute mti_svvh_generic_type of pmi_resetmode : constant is 1;
    attribute mti_svvh_generic_type of pmi_optimization : constant is 1;
    attribute mti_svvh_generic_type of pmi_init_file : constant is 1;
    attribute mti_svvh_generic_type of pmi_init_file_format : constant is 1;
    attribute mti_svvh_generic_type of pmi_write_mode_a : constant is 1;
    attribute mti_svvh_generic_type of pmi_write_mode_b : constant is 1;
    attribute mti_svvh_generic_type of pmi_byte_size : constant is 1;
    attribute mti_svvh_generic_type of pmi_family : constant is 1;
    attribute mti_svvh_generic_type of module_type : constant is 1;
end pmi_ram_dp_true_be;
